package com.bowen.demo.demo004;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang.StringUtils;

/**
 * <h3>java-study</h3>
 * <p>根据IP地址获取地理位置</p>
 * @author : zhang.bw
 * @date : 2021-03-10 12:27
 **/
public class AddressUtils {

	/**
	 * 根据IP地址获取地理位置
	 */
	public static String getAddressByIP(String ip) {
		if (StringUtils.isBlank(ip)) {
			return "";
		}
		if ("127.0.0.1".equals(ip)) {
			return "局域网，无法获取位置";
		}
		String url = "https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?resource_id=6006&format=json&query=" + ip;
		HttpResponse res = HttpRequest.get(url).execute();
		if (200 != res.getStatus()) {
			return "获取位置失败";
		} else {
			JSONObject resJson = JSONObject.parseObject(res.body());
			JSONArray resArr = JSONArray.parseArray(resJson.getString("data"));
			resJson = JSONObject.parseObject("" + resArr.get(0));
			return resJson.getString("location");
		}
	}

	public static void main(String[] args) {
		String addr = getAddressByIP("47.114.172.141");
		System.out.println(addr);
	}
}
